package Categorias;

import Aplicacion.Captura;
import Aplicacion.SmsSender;
import Aplicacion.Vehiculo;
import Utils.Utils;

@SuppressWarnings("serial")
public class Inhabilitado extends Categoria{
		
	private SmsSender smsSender;
	private static final int MAXMONTHS = 6;
	
	public Inhabilitado(SmsSender smsSender) {
		this.smsSender = smsSender;
	}
	
	/**
	 * Env�a una notificaci�n a la comisar�a de la zona
	 * @param captura Captura de la zona donde se vio el veh�culo
	 */
	@Override
	public void notificar(Captura captura) {
		this.smsSender.enviarSMS(captura.getInfraccion().getZona().getNroComisaria());
	}
	/**
	 * Verificia si un veh�culo cumple los requisitos para pertenecer a 
	 * esta categor�a
	 * @param vehiculo Veh�culo que cometi� la infracci�n procesada
	 */

	@Override
	public void procesarAsignacion(Vehiculo vehiculo) {	
		if (vehiculo.getPuntosRegistro() <= 0) {
			vehiculo.addCategoria(this);
		}
	}

	@Override
	public void procesarDesAsignacion(Vehiculo vehiculo) {
		if (vehiculo.getImporteMultas() == 0 && Utils.isOlderThanMonths(vehiculo.getFechaLastInfraccion(), Inhabilitado.MAXMONTHS)) {
			vehiculo.removeCategoria(this);
			vehiculo.setPuntosRegistro(Vehiculo.PUNTOSINICIALES);
		}
	}
	
}
